So as it turns out, I have been doing 3D rotation completely wrong all these years. For a rotation θ of x,y, I did (sin(arctan(x/y)+θ)sqrt(x^2+y^2), cos(arctan(x/y)+θ)sqrt(x^2+y^2)), when I could've been doing (xcosθ-ysinθ, xsinθ+ycosθ). This second method is a lot more concise, and A LOT faster. I can speed up 3D projection projects now by A LOT.