It’s evident from your posts that your technical knowledge and abilities far surpass my own, so I have no doubt that it’s as simple as my post made it seem. I went slowly and carefully, and after years of dealing with Asian, American and oh yeah, French cars (a minuscule Mercedes manufactured at Smartville in Hambach), the stoutness of the MINI’s attachment points came as a pleasant surprise and relief. I think there is very little I could do to cock up this simple mod.
I just finished the switch and programming, the switch replacement was insanely easy, here is a pic of the panel removed so others can see the clip locations.
The factory headlight switch easily detaches, you just tilt the switch from the bottom and it will pop right out. Installation is the reverse, place the top of the switch into the switch retaining clip, you only need to ensure the top right hole (from looking at the back of the switch) is lined up and tilt the switch down into position, it will clip back in. Plug in the wiring, note the shape of the plug for the orientation. I made sure the switch was in the off position just to be safe.
Reinstall the panel, the switch is now in and you have one less blank button.

Coding was not painful either, I think the hardest part is looking for words you do not understand unless your are fluent in German. When using Bimmercode, DO NOT and I repeat DO NOT forget to put your phone in airplane mode. The only thing you want your phone connected to is the OBD2 dongle, you do not want music streaming over bluetooth, and calls and texts coming in while coding your car. Any interruptions in data transfer might mess things up so always put your phone in airplane mode.
I'll try and make the instructions a little more staightforward than what NAM had.
1. With your dongle inserted, power up your car, switch on, car not in the ready state. Basically, press the start switch without your foot on the brake.
2. Open the BimmerCode app and connect to your dongle.
3. Once BimmerCode is connected, open the "Body Control Module". This will take a minute or so.
4. Open "Expert Mode" from the Body Control Module.
5. Scroll down till you see, "3068 NSL Verbaut" and select "Verbaut".
6. Back out of the Body Control Module and press, "Code". If you have not done this before, the warnings and errors look scary but do not worry.
7. Disconnect your phone from BimmerCode and cycle the power on your car.
8. Repeat steps 2, 3, and 4.
9. Look for, "3064 Mapping_Nebelschluss/_L_output" click on it and then select, "nsl_l".
10. Look for, "3064 Mapping_Nebelschlussl_L_Function" and verify, "nebelschlusslicht" is selected. Mine already was.
11. Look for, "3064 Mapping_Nebelschluss/_R_output" click on it and then select, "nsl_r".
12. Look for, "3064 Mapping_Nebelschlussl_R_Function" and verify, "nebelschlusslicht" is selected. Mine already was.
13. Back out of the Body Control Module and press, "Code". Now you are done.
When it is done coding, power down your car, disconnect your phone from the dongle and remove the dongle from the OBD2 port.
To test it, turn your car on and verify that your headlights turn on in the far right switch position, and cycle through the other positions. My garage is dark so I verified the auto setting and parking light setting. Push the top fog light switch and the indicator on the dash lights up. Push the rear fog light switch and you will see a new indicator you normally would not have seen to the right of the fog light indicator.
Now check to see if all your hard work paid off. Go to the rear of your car and the fog lights should be on.
If you have an Iconic like I do, there is still one more blank switch, what it is, I have no idea. I put a sticker on it so my blank switch OCD doesn't kill me. Thank you Sameguy for sharing the link to the switch and original coding instructions.
