You shouldn’t need to do any kind of mapping between SDL gamepad input and virtual gamepad output. Assuming that all of the buttons and axes are present on both the real and virtual controllers, you can pass the gamepad buttons and axes directly to the virtual controller without any remapping.
e.g. SDL_JoystickSetVirtualButton(virtual_joystick, event.cbutton.button, event.cbutton.state);