1) Использовать нормаль от столкновения. Примерно так :
InGround = false
entCol = EntityCollided(ent, ColType)
if entCol <> 0 then
For n = 1 to CountCollisions(ent)
if CollisionNY(ent, n) > 0.5 Then
InGround = True
Exit
EndIf
Next
EndIf
If InGround = true Then
перемещение
EndIf
2)Можно узнать размер меша через команду MeshHeight(), но если он будет отскейлен командой ScaleEntity, то тогда придется умножать это значение на скейл, чтобы получить точные значения.