In mob.cpp Mob::CalculateDistance it reads:
Code:
return (float)sqrt( ((x_pos-x)*(x_pos-x)) + ((y_pos-x)*(y_pos-x)) + ((z_pos-z)*(z_pos-z)) );
and should be... (notice the y calc)
Code:
return (float)sqrt( ((x_pos-x)*(x_pos-x)) + ((y_pos-y)*(y_pos-y)) + ((z_pos-z)*(z_pos-z)) );
Among other things it might explain the vanishing mobs.