I've searched on the board and found out a little about the shifter problems, but haven't had enough time to digest it.
Yeah, it's one of those things that are probably easier to understand once you try it.
But the classic example is Pole Position which in the standard build of MAME handles the shifter as a 'toggle'. ie space bar toggles between lo/hi. The actual machine did not work like this (this would have meant a momentary switch in the shifter), in fact it has a single normal miscroswitch - in one position the switch is closed, the other it is open. For MAME to handle this correctly, you would hold the space bar (or whatever) down to stay in lo, and release to shift into hi (or vice versa, I'm not sure).
You have 2 choices in this situation (that I can think of anyway). 1) re-compile MAME to handle the shifter correctly (for PolePos at least I believe the source has code/comments to help with this) - this is ideal. 2) Connect the 'NC' connector of your shifter's microswitch up to a seperate input to 'NO'. So let's say for example you could have NO=Space, NC=Z. Now in PolePos you would map 'Space OR Z' to the shifter input. This will work...but there are a couple of drawbacks: firstly, a keypress is always being sent regardless of what gear you're in - might not be a problem, but it could be a pain in Windows...you could use a switch on the Ground side to prevent this if you wanted. Also, lo and hi physical positions will not neccessarily always match up to lo/hi in the game (depending what position the shifter is in when you start the game).