here is an example of vec_for_screen:

Code:

function mouse_to_level
{
var vec_from[3];
var vec_to[3];

vec_from.x = mouse_pos.x;//can also be your "2d coordinates"
vec_from.y = mouse_pos.y;//can also be your "2d coordinates"

vec_from.z = 10;

vec_set(vec_to,vec_from);
vec_for_screen(vec_from,camera);

vec_to.z = 100;//distance_from_screen
vec_for_screen(vec_to,camera);

trace_mode = ignore_me + ignore_sprites + ignore_models + ignore_passable;
return(trace(vec_from,vec_to));
}

function get_target
{
mouse_to_level();
ent_create("xxx.mdl,target.x,function);
}

on_mouse_left = get_target();


but perhaps its enougth if you use view-enitys?!