I’m reading the code that handles getting slammed into stuff.
Getting slammed into monsters and walls uses the same rules. When you blast through a monster or an obstacle, your velocity gets halved. When you fail to blast through, it is zeroed. You then get damaged depending on how much your speed changed. Since that damage respects armor, you want to get stopped by multiple weak obstacles rather than one hard. Obstacle hardness is binary - if you slam through, you get the weaker effect whether it was solid rock or a paper wall you slammed through.
Then you land and get some damage for that. If you land on (swimmable) water, 0 damage. Otherwise you get roughly half the damage you’d get from being slammed into (but not through) a wall or about equal to what you’d get from getting slammed through a wall. This damage is then reduced by your parkour skill (halved if you have it) and then your dex (damage = damage * 8 / dex) with dex getting a lower cap of 4.
Exact damage is rng(velocity, velocity * 2) / 3 (or /6 when landing). Velocity only changes when you slam into stuff. Monsters you slam into get rng(vel, vel*2) damage (no /3 here). Obstacles other than monsters are bashed with force equal to current velocity. Getting slammed through walls doesn’t seem to affect the range you fly, as long as your velocity is high enough to breach all of them. Range is starting velocity/10.