Well, I can write it up BUT in short form , details could be told in person, as its easier and I can also show the car we did and its much easier to understand then sit here and read all this.
This is for Non-m E46.
Everything bolts right in, no need for any custom work or any stupid ways to go about it. However, you need ALOT of parts to make it an easy swap. Basically in order to make it a headache free swap you'll need the following
-s54 with all accessories intake plenum and box as well as MAF, both wiring harnesses, engine and accessories
- MSS54 DME from same motor
-M3 radiator and M3 oil coller
-M3 steering rack, later would need to shorten the tie rods or get aftermarket adjustable ones.(M3 has a much wider track all due to longer tie rods in the front, rear track is accommodated with low offset rims )
-M3 expansion tank
-M3 air pump
-M3 fuel pump and filter
-M3 exhaust manifolds and 02 sensors (your old cat back exhaust wont fit but a small trip to the muffler shop will fix that)
-M3 windsheild washer tank
-You DONT need to change keys, you will use your old key and your old ignition lock.
- You DONT need M3 EWS
Everything will bolt right in IF you have all the needed parts. I truly mean everything is bolt in, engine and the location of the other parts right down to the location of the airbox and location of the airpump (the holes that were used for the windsheild washer are now used for the airpump bracket.)Your old windsheld tank is now in the dumpster and you can try to mount the M3 tank behind the bumper or relocate the lines into your empty drug bin with your old tank there. The fuel delivery SHOULD be changed over from your non-m as the M3 fuel pump is needed for optimum balance as well as the fact that non-m fuel filter has different exit fittings. Just buy a fuel filter and the pump, lines stay the same.
You will use MSS54 DME and your old ms43 or whatever you had goes in the dumpster. Now you need to find anyone who has access to advanced coding software in order to delete the EWS from the car and synchronize the pedal to DME (now if you have the old E46 with a cable throttle you will need to buy a drive by wire pedal), any one will work it DOESNT have to be from M3 to work. rewire and process of switching from cable to DBW wont be discussed here.
Once the pedal is synch'd just start the car up and off you go. Your old cluster will work just fine and show all thats needed. You may pick up a separate oil temp gauge and put in whereever you want.
Its takes money to make it right and the ONLY reason why people have so much problems is because they think they can do it better then BMW engineers designed. They all try to fabricate some stupid brackets for oil coolers(instead of buying an M3 rad, because the oil cooler will ONLY fit onto M3 rad, been there done that) or new water lines for rad(the inlet is the same on the block but exit is different , because the ET is on the pass side and not on driver) or try to solder their old PS lines to the new ones...
A few key things to remember when you want to do this is NOT to buy things off of SMG cars and do NOT EVER buy a DME out of a convertable, or you will have the nightmare of your life.
Basically, if you have to ask , your best bet would be to pay a shop whos done it before and sit and wait for it to be done. Or try to do it yourself and mess it all up, your choice.