I have just had a similar problem with the lights whereas they would both light whlle sat with the doors closed and then press the light this is the map reading function but when set to light when the door is opened only the drivers side would light, now on a better note I actually fixed this problem today, the problem seems to be with the switches that are located under the lenses in the overhead console, it is a easy fix (well it was for me).
Tools required
7mm socket and something flat and thin I used a small kitchen knife, and some isopropyl switch cleaner aerosol type from maplins
First thing insert the flat tool into the edge of the lense near the corner closest to the centre of the console and gently pry the lense out you will then need to do,the same on the bottom side closest the screen, take both lenses out, then next insert the flat tool under the edge of the square panel that conceals the mic for the HFT and lever it out, looking up into the console you will see 4 bolts remove these and the console will come out, this is the tricky bit disconnect all the modular connectors and you will have the whole unit in you hands, looking down into the console from the back the front part will come out there is 4 tabs that hold it in just a gentle pry and the module will be released, almost there now, the parts you need to get out are the push switches, turn the module upside down so you are looking at the flat bottom part of the switches again insert the flat tool into the small gap between the edge of the switch and the module gently twist and the switch will pop out it comes out sideways you will see the 3 prongs that it connects to get the switch cleaner and squirt a bit into the 3 holes on the switch and squirt some around the shaft on the switch give some clicks in and out this will clean the inside, do the same with the othe one, let them dry of for 10 mins it may not take that long the cleaner evaporates quickly, put it all back together and hopefully it's all good and working as it should, like I said mine was playing up and this worked for me.
Sorry for the long post and good luck
I had never done this before and went in not knowing what was what but the Job was all done start to finish in 30 mins