Do you use mouse in camera movement (mouse_mode)?
Mainly you need to trace from the camera to mouse position and downwards from it to find ground and to place crosshair on.
Something like this:
VECTOR pos1;
VECTOR pos2;
vec_zero(pos1);
vec_zero(pos2);
pos1.x = mouse_pos.x;
pos1.y = mouse_pos.y;
pos1.z = 0;
vec_for_screen (pos1, camera);
pos2.x = mouse_pos.x;
pos2.y = mouse_pos.y;
pos2.z = 200000; // use a big value here
vec_for_screen (pos2, camera);
c_trace (pos1, pos2, IGNORE_ME | IGNORE_PASSABLE);
Then you can place a decal on the target from the trace. That will be the best solution (that I see). Cause I'm using free version, I can't advice anything about 'ent_decal' but I'm sure it will handle it nice.