Let’s see it another way:
In spat~, the only situation where moving/rotating the listener would be meaningful is headphone-based rendering (binaural), assuming you have some head-tracking device.

Yet, for the spat.oper and spat.spat~ objects, the listener MUST remain in the central location (0,0,0).
Indeed you can notice that it’s not possible to move the listener in the spat.oper interface.
So, the only proper way to simulate listener’s translation/rotation is to convert the sound scene from the (0,0,0) perspective.
The easiest way to achieve that is to use the spat.abs2rel object.
The attached patch illustrates that: The spat.viewer window represents the sound scene in an absolute perspective; in this perspective, you can freely translate/rotate the listener. Then everything is converted (and rendered) to a (0,0,0)-relative point of view.

In this patch, roll, pitch and yaw messages are supported.
Please note however that only the “yaw” angle is visually depicted in the GUI.

— Pasted Max Patch, click to expand. —

Copy all of the following text.Then, in Max, select New From Clipboard.