The code above should change both the bone's pan and tilt. The code doesn't consider the tilt and roll of the entity, though, so if the entity is tilted or rolled, the bone's rotation won't be correct anymore.

If overcoming this limitation is what you're looking for, the following snippet should do the trick. It's a slightly modified version of the code above.
Code:
VECTOR  bone_pos, local_target_pos;
ANGLE   bone_angle;

vec_for_bone(bone_pos, entity, "bone");
vec_set(local_target_pos, target_position);
vec_to_ent(local_target_pos, entity);
vec_to_angle(bone_angle, local_target_pos);

// vec_to_angle leaves roll unchanged.
// To prevent random roll angles, roll must be set manually.
bone_angle.roll = 0;

ent_bonereset_all(entity);
ent_bonerotate(entity, "bone", bone_angle);


I did a quick and dirty test and the code worked properly. There might be sitations, however, I didn't take account of, in which it fails. This is left to be checked. laugh