You have to understand what MatrixTransform() does. It first translates, then rotates, then translates back and finally it scales. If you use (0,0,0) as the first vector, it will only rotate and scale. If you use (1,1,1) (which is VectorUniform(1.0) ) as the scaling matrix, you will only have rotation left. However, if you only need rotation, using the MatrixTransform() routine is overkill.

What you want to do, is rotate about the center of something. In that case you have to determine where the center is. Then you have to move your geometry in such a way that the center lies at (0,0,0) before rotating. The code in your startpost seems to look right.

I'd suggest you to play with this for a while. Understanding matrices is quite hard (for me too). Just start off with the code in your startpost (corresponding to the first youtube movie). Make sure to keep in mind what MatrixTransform() does exactly.

Good luck.