Wow, that’s pretty darn broken. I messed around with this for a bit and read the original bug-report threads. I think the only “solution” right now is to set the quaternion rotation every frame yourself. For example this works:

I couldn’t get anything useful working with go.animate(). I gather from Ragnar’s post that it doesn’t interpolate quaternions properly?

Interestingly, if you set euler.z on init() it will be correct, even with greater than 360-degree positive or negative values. But if you do the same exact thing at runtime with a value that’s on the “wrong” side of the circle, it will alternate sides each time you set it.