I think I've tracked down the problem, a bug introduced in v20. In your SNES log I see:
Code:
info <general>: AddOnLog: peripheral.joystick: Initialized joystick 0: "Xbox 360-compatible controller", axes: 6, hats: 0, buttons: 15
info <general>: AddOnLog: peripheral.joystick: Initialized joystick 1: "USB Gamepad ", axes: 6, hats: 0, buttons: 10
info <general>: AddOnLog: peripheral.joystick: Initialized joystick 2: "Logitech Cordless RumblePad 2", axes: 4, hats: 1, buttons: 12
info <general>: PERIPHERALS::CPeripheralAddon::Register - new joystick device registered on addon->peripheral.joystick/0: Xbox 360-compatible controller
info <general>: PERIPHERALS::CPeripheralAddon::Register - new joystick device registered on addon->peripheral.joystick/1: USB Gamepad
info <general>: PERIPHERALS::CPeripheralAddon::Register - new joystick device registered on addon->peripheral.joystick/2: Logitech Cordless RumblePad 2
Kodi sees three controllers, but doesn't assign them to the right ports. I think that the Xbox controller is getting port 0, etc.
In v19, port 0 would get whatever controller is activated last. If you start the game with a SNES controller, port 0 gets the SNES controller, as expected. This approach isn't perfect, but it worked well enough in v19, so I'm restoring the behavior which should fix this problem:
https://github.com/xbmc/xbmc/pull/23482
You can try the fix out in my test builds:
https://github.com/garbear/xbmc/releases
Note that I added a new window, the "View Players" window, which will let you see what Kodi thinks which controllers go to which ports.