Even in an area dense with objects, it seems that it will detect at most 16 objects of a given type.
Is this a known limitation?
I'm not doing anything fancy yet; here's my code:
touch_start(integer total_number)
{
// Look all around for active objects
llSay(0, "Scanning for active objects..."
;llSensor("", NULL_KEY, ACTIVE, 90, PI);
// Look all around for passive objects
llSay(0, "Scanning for passive objects..."
;llSensor("", NULL_KEY, SCRIPTED, 90, PI);
// Look all around for scripted objects
llSay(0, "Scanning for scripted objects..."
;llSensor("", NULL_KEY, PASSIVE, 90, PI);
}
If this is a true limitation, does anyone have any ideas for a better way to update scripts in lots of objects? I don't want to have thousands of objects listening (due to efficiency concerns).

data that gets returned along with an llSensor() call. Keep in mind that its not just returning the key for each object/agent detected, but also its Group, Link Number, Name, Owner, Position, Rotation, Type, and Velocity.