I think there may be a BIG misunderstanding here…
You can use Core remaps for this, if I understood it correctly.
Just like I did with this gamepad:
All buttons are set according to the default mappings (like they would on a x360 pad).
And then, In SNES it maps just like you said:
Y - X - L
B - A - R
In Mega Drive (and Saturn, and PC-Engine), I set (the obvious) core remaps:
X (Y) - Y (X) - Z (LB)
A (B) - B (A) - C (RB)
Select is “Mode” (Mega Drive) or the 2b/6b pad switcher (PC Engine)
And then after this setup, they work perfectly, just like the original gamepads.
If the devs start adding exceptions, it would defeat the whole purpose of the retropad, wouldn’t it?
Core remaps works just like they would on standalone emulators.
The problem with the MadCatz Fightpad is that they use RB for Z and RT for C.
In the case of the MadCatz FightPad (Xbox edition) you can achieve all you want by simply setting all buttons just like:
B button (down): A
Y button (left): X
Select button: Select
Start button: Start
A button (right): B
X button (top): Y
L button (shoulder): LB
R button (shoulder): LT
L2 button (trigger): RB
R2 button (trigger): RT
That way, it maps perfectly to the Super Famicom/SNES pad, without needing to set a core remap for it.
To set it for Saturn/MD, just create a core remap with:
User1 A: A
User1 X: X
User1 B: B
User1 Y: Y
User1 C: R trigger
User1 Z: L trigger
User1 L: L bumper
User1 R: R bumper