GamePad Trigger/Bumper swapped

Sorry, couldn’t find any relevant search results for this, so figured I’d ask real quick.

I suspect this is a hardware-level issue, but just in case…

So while playing around with normalization with analog controls, I noticed that my game pad (a crappy, TTXTech PS3/PC el-cheapo) trigger and bumper are reversed.

So, for instance… If I do this:

Console.WriteLine(CurrentGamePadState.Triggers.Left);

It will produce a 0 or 1, depending on whether my bumper is pressed. Bumper being the simple on/off shoulder button. The trigger, to my understanding, is the one in the back of the controller which has a variable sensitivity.

Yet after going through my OS and into Monogame, it gets mapped to the bumper. Conversely, if I do this:

Console.WriteLine(CurrentGamePadState.Buttons.LeftShoulder);

I get either ‘Pressed’ or ‘Released’ for the button state across the entire range of the trigger.

Thankfully, I did have another spare controller to try out. This one a nicer Xbox360 controller from a nice manufacturer. The 360 controller worked totally fine, with the trigger correctly mapping a range for the Triggers.Left float value.

So I guess the question is: is this even something that could be corrected on our end to account for crappy game pads, or is it purely a device/OS/driver related problem?

EDIT: Oh and for added fun, the right thumbstick maps its axis values inverted from the right. So tilting right on the left thumb is 0 to 1F, but it’s 0 to -1 on the right thumb. No idea if that’s normal but it sounds wrong.