This is the vector length I'm using, nothing special.
Code:
vector(0,248,24);


The only thing I changed was in the main function here.

Code:
ENTITY *ent = ent_create ( "Room02.wmb", nullvector, NULL );
ent_create( "cube.mdl", vector(0,248,24), NULL); //Point to rotate around
ent_create( "cube.mdl", vector(0,0,0), NULL); //origin reference
vec_set ( ent.vOriginX, vector(0,0,0));
vec_diff ( ent.vOffsetX, vector(0,248,24), ent.vOriginX );


Maybe I'm reading this wrong and that is causing the issue. Here's what I think the code is doing.

I set the vector (0,0,0) to the vOrigin vector, I then calculate the difference between the vOrigin and the new point I want to rotate around, (0,248,24), and store it to the offset vector.

When I run this code, the map rotates around vector(0,0,0), and I can see the other cube that is supposed to rotating around off to the side, but it's clearly not the point it's rotating around.