Universal mapping in IM is accomplished by converting all channels from devices to and from generic names, that way devices with plugins that are built to these generic names do not need to be manually mapped. This also allows a single profile mapping to work for any controller that adheres to this standard.

Generic NameDualShock 3Dualshock 4XboxKeyboardMouseDirectInput
FaceButton1CrossCrossA
FaceButton2CircleCircleB
FaceButton3SquareSquareX
FaceButton4TriangleTriangleY
DPadUpDPad UpDPad UpDPad Up
DPadDownDPad Down DPad Down DPad Down
DPadLeftDPad Left DPad Left DPad Left
DPadRightDPad RightDPad RightDPad Right
SystemButton1SelectShareBack
SystemButton2StartOptionsStart
SystemButton3PSPSGuide
LeftBumperL1L1Left Shoulder
RightBumperR1R1Right Shoulder
LeftTriggerL2L2Left Trigger
RightTriggerR2R2Right Trigger
LeftStickXLeft Stick XLeft Stick XLeft Stick X
LeftStickY Left Stick YLeft Stick YLeft Stick Y
RightStickX Right Stick XRight Stick XRight Stick X
RightStickY Right Stick YRight Stick YRight Stick Y
LeftStickClickL3L3Left Stick
RightStickClickR3R3Right Stick
BigRumbleBig RumbleBig RumbleBig Rumble
SmallRumbleSmall RumbleSmall RumbleSmall Rumble
AccelXAccelerometer X Accelerometer X
AccelYAccelerometer Y Accelerometer Y
AccelZAccelerometer ZAccelerometer Z
GyroXGyroscope XGyroscope X
GyroYGyroscope YGyroscope Y
GyroZGyroscope ZGyroscope Z
BatteryStateBattery State
BatteryLevelBattery Level