'/data get' does not properly return player motion
The bug
Storing a player's movement in any format does not work as intended, with Y values negative when on the ground and positive when jumping, but not changing when flying. X and Z values only change when sprint jumping around.
Recreate first running:
Impulse
scoreboard objectives add move dummy
scoreboard objectives setdisplay sidebar move
then setting up:
Repeating
execute store result score x move run data get entity @p Motion[0] 1000
execute store result score y move run data get entity @p Motion[1] 1000
execute store result score z move run data get entity @p Motion[2] 1000