Я во всем разобрался. И решил коль уж спрашивал, поделиться результатом.

Объяснительная часть:
Ошибка возникает в update_jump при взаимодействии @jump_count с координатами @real_X,@real_y.(Это момент перемещения в прыжке.)
Так вот это происходит когда @jump_count не входит в [2,4,8,16,32...], а так как @jump_count=@jump_peak*2
то его значение зависит от distance и @move_speed от сюда и разброс что с одной скоростью на одно кол-во клеток все хорошо, а с другой уже нет.

Способы решения помимо маскировки и не использования такой графики:
1) Переписать update_jump я в этом не помощник ибо мне это не нужно
2) Привести к наиболее вероятным высотам 4,8
@jump_peak = 10 + distance -@move_speed
@jump_peak/=4
@jump_peak*=4
@jump_peak=[@jump_peak,8].min
2) Привести к потенциальным 4,8,16
@jump_peak = 10 + distance -@move_speed
@jump_peak/=4
@jump_peak*=4
@jump_peak=(@jump_peak > 12 ? [@jump_peak,16].max : [@jump_peak,8].min)
п.с. нет смысла прибегать к бинарным операции
3) Самый простой задать подходящую высоту и по совместительству длину анимации перехода: @jump_peak = 8
4) Разделить @jump_peak и @jump_count где приводить уже @jump_count
5) Привязать к вашим переменным, как одно из значений, так и оба дабы иметь возможность быстра настроить нужные параметры.
@jump_peak = $game_variables[x]