Why not employ a range system? Do an entitydistance on every object? Determine the range, and delete or hide or leave unchanged as appropriate. EntityDistance calculations are lightning quick, so a couple of 1000 a loop isn't going to touch frame rate.