The mass of objects is kinda messy. Measured by density and volume of the object, measured in Lindograms. Avatars have disproportionate mass compared to objects, and those objects report unusual results when child prims are involved (bug in recalculating mass that only resolves with unlink/relink), and mass does not take into account when parts are set with no physics. Overall volume is measured based on a bounding box, which may well be far larger than the visible mesh object.
Trying to influence mass by scripted changes to object volume and density don't work reliably due to the child prims issue, and once you sit an avatar on something its mass can be affected far more than it really should be, or not enough.
Obviously changing existing mass in the physics engine is likely out of the question so we don't break every mass-dependent object ever made, so how about we get a function to override it?
If we could use something like llOverrideMass(float new_mass); then the scripter can confidently use physical forces and functions with predictable results.
In objects it would define the mass of that object/linkset regardless of changes to its child prims or avatars sitting, and in attachments it could be used to stablise avatar mass to a known value independent of how tall they are.
edit : I guess a mass override in a sat-on object needs to take precedence over one in an attachment of the sitter.