I wasn't able to reproduce the issue yet after modifying the code like this:

Code:
void main() {
	
	level_load(NULL);
	
	wait(1);
	
	video_aspect = 1.777;
	video_switch(12,32,1);
	
	mouse_map = crosshair_1_pcx;
	
	mouse_spot.x = bmap_width(crosshair_1_pcx)/2;
	mouse_spot.y = bmap_height(crosshair_1_pcx)/2;
	mouse_pos.x = mouse_cursor.x;
	mouse_pos.y = mouse_cursor.y;
	
	mouse_mode = 2;
	
	level_load(NULL);
	
	while (1) {		
		mouse_pos.x = mouse_cursor.x;
		mouse_pos.y = mouse_cursor.y;
		wait(1);
	}
	
}



No idea if it's coincidence ... any great differences between using video_switch or video_screen?