Наверное самый тупой способ, это использовать не снежок а какую нибудь сущность с взглядом, чтобы сделать tp @s ^ ^ ^-0.1 facing entity @p, способ тупой, я знаю, очень позорный, но всё-таки пусть он будет озвучен.
Вообще направление в которое будет лететь снежок довольно просто задать. Для этого используется data modify entity @s Motion[0] set value 1b (Motion[0] это X, Motion[1] это Y, Motion[2] это Z, а value это сила броска) но есть проблема с тем чтобы впихнуть туда не произвольное число, а направление взгляда игрока, сколько я пробовал - у меня не получилось (очень обидно). Зато мы можем копировать дату из одной сущности в другую, например мы можем скопировать дату игрока в дату снежка, сразу после его спавна, что бы он двигался с той-же интенсивностью что и игрок (только без необходимости останавливаться) data modify entity @s Motion[0] set from entity Sench_mp4 Motion[0] но в этом варианте для того чтобы нормально метнуть топор игроку придётся перед этим разбегаться. Звучит конечно достаточно лаконично, но на деле всё равно какая-то хрень получается.
Надёюсь эта информация хоть как нибудь да поможет. Мне тоже хотелось бы найти хороший способ сделать что-то метательное, уверен такой есть