Ok I wrote myself a small test app to find a working solution and finally I found on:
Code:
action object_act
{
	var attached;
	var offset_dist[3];
	var offset_angle[3];
	
	attached = 0;
	
	while(!player) { wait(1); }
	
	while(my)
	{
		if(status_CarryBox)
		{
			if(attached == 0)
			{
				offset_angle[0] = player.pan;
				offset_angle[1] = 0;
				offset_angle[2] = 0;
				
				offset_dist.x = my.x - player.x;
				offset_dist.y = my.y - player.y;
				offset_dist.z = 0;
				
				attached = 1;
			}
			
			my.pan = player.pan;
			
			vec_set(my.x,offset_dist.x);
			vec_diff(temp,player.pan,offset_angle);
			vec_rotate(my.x,temp);
			vec_add(my.x,player.x);
		}
		else
		{
			attached = 0;
		}
		
		wait(1);
	}
}


This code only takes the pan angle into consideration and the .z position is not altered as well.
I hope this is what you were looking for.