Buddabing.
I have to look to see if my ctrlr file hacks are current with the new ctrlr stuff. But I put my hacks in the correct location in the heirarchy.
Basically mame's heirarchy is it loads the most general ctrlr file first (default.cfg).
Then display type (raster, vector, horizontal, vertical, but this is my hacks)
Then I believe it goes to control type (like mouse, lightgun, etc...)
Then driver (neogeo, cps1, etc...)
then parent,
then game
So as it goes down the line the it overwrites the more general controls as needed.
For example, if I have a default.cfg that maps keys A,S,D,Z to buttons 1, 2, 3, 4. Then have a neogeo.cfg that maps Z,X,C,V to buttons 1,2,3,4, then a mslug.cfg that maps A,S,D,F to 1,2,3,4 when it reads in the ctrlr files for mslug it is going to first load default.cfg, so our button configuration will look like
A=1, S=2, D=3, F=, Z=4, X=, C=, V=. Then it will readin in neogeo.cfg and overwrite creating A=1, S=2, D=3, F=, Z=1, X=2, C=3, V=4. Then it will read in mslug.cfg and we will end up with A=1, S=2, D=3, F=4, Z=1, X=2, C=3, V=4.
BTW, you can see this heirachy if you turn verbose on in the mame.ini file, it tells you which files it loads if they exist when loading the game
I don't think this heiarchy changed for the new xml system but I haven't been able to look at the code and see if my hacks still work..