Ah, okay, the mount_dy vs. mount_dx bit makes sense, then.

The issue with using a hardcoded value in fling_player_or_monster is that it applies damage to the player, depending on the value of that last parameter.

Basically, two things need to happen in this bit of code. One is that the player needs to jump far enough away from the vehicle that they've actually, properly exited the vehicle, which isn't being done at present. The other is that the player needs to take damage from the sudden deceleration, but only at high speeds.

Probably the correct approach is to stop using fling_player_or_monster, and instead do something like jump_to_safety and hit_ground.