This turned into a long explanation, so I moved it to Tutorials. If you just want some quick tips for numbers, jump down to "Practically Inworld".

The mysterious "Gain" factor: Boobceleration

The wearable avatar physics object presents you with an overwhelming amount of sliders. For most of them, it is reasonably easy to get an intuitive grasp of what they do, but the "Gain" remains a bit of a mystery. Most explanations say something like "A bigger number gives a larger effect", which... doesn't really explain much.

So I dug into the source code to see what the parameter actually does:

// Calculate the total force 

// Spring force is a restoring force towards the original user-set breast position.
// F = kx
const F32 spring_length = position_current_local - position_user_local;
const F32 force_spring = -spring_length * behavior_spring;

// Acceleration is the force that comes from the change in velocity of the torso.
// F = ma
const F32 force_accel = behavior_gain * (acceleration_joint_local * behavior_mass);

// Gravity always points downward in world space.
// F = mg
const LLVector3 gravity_world(0,0,1);
const F32 force_gravity = (toLocal(gravity_world) * behavior_gravity * behavior_mass);
// Damping is a restoring force that opposes the current velocity.
// F = -kv
const F32 force_damping = -behavior_damping * mVelocity_local;
// Drag is a force imparted by velocity (intuitively it is similar to wind resistance)
// F = .5kv^2
const F32 force_drag = .5*behavior_drag*velocity_joint_local*velocity_joint_local*llsgn(velocity_joint_local);

const F32 force_net = (force_accel + 
			   force_gravity +
			   force_spring + 
			   force_damping + 

// End total force

// Calculate new params

// Calculate the new acceleration based on the net force.
// a = F/m
const F32 acceleration_new_local = force_net / behavior_mass;

Excerpt from llphysicsmotion.cpp

They meant it when they called it "breast physics"! This is Newtonian acceleration = force / mass (and, in turn, speed = acceleration * time).

In other words, when the body moves, it produces a force which in turn pushes the body part around.
This force – and with it, the acceleration – is scaled by the Gain factor, a tweak factor adjusting how forcefully the body part is thrown in the direction indicated, and thus how fast it moves and how difficult it is to counteract by other forces, like gravity and damping.

So while a low Max Effect will try to limit the movement, a powerful push (i.e. a lot of Gain) will still cause a lot of movement, which is why it can sometimes be hard to see the difference between the Max Effect and the Gain slider.

You will notice that the code above uses numbers, not vectors, to control the movement. This is because, despite the sliders being slightly more poetically named in the interface, they are really Breast_Physics_UpDown_Controller, Breast_Physics_InOut_Controller and Breast_Physics_LeftRight_Controller, each controlling one axis. –Belly has only UpDown, and butt has UpDown and LeftRight.

This also explains what the Advanced sliders do. They are, quite literally, the mass and gravity used in these Newtonian calculations, albeit using abstract, unnamed units. (With Drag being, as described, "intuitively similar to wind resistance", though that is quite a "fudge factor").

Framerate jerkiness

It seems there is an inconsistency in the way movement is interpolated if framerate is low or inconsistent.

Animations are interpolated based on FPS (Frames Per Second), so if the framerate drops, the animation takes larger steps to keep the same timing in movement. The physics system is independent of this interpolation, though, so to it, it looks like a large movement was taken since the last physics update, in turn throwing the body parts violently around to follow this movement. In theory, this should work out if the physics calculations similarly slow down, since the body parts do need to move more to follow the larger movement in one calculation step, but practically, a lower framerate also means a relatively more inconsistent framerate, which throws this out of whack.

So the bottom line here is that the physics easily bounce violently and almost randomly around if the framerate is low, or if the rendering for some reason drops some frames.

Practically inworld

But what are good values, then? That is still largely a matter of personal taste.

My take is as follows:
(The specific numbers I mention have no deeper meaning than me fiddling with the sliders while running some animation loops, and I don't claim anything beyond them not being entirely stupid).

I do not want the effect too exaggerated and "floppy", so I keep the overall Max Effect low. This also somewhat limits the wild random jerking when frames drop.

I do want to see an effect, though, so I use a higher Gain (compared to Max Effect). This combination encourages it to move, but within a reasonable range of movement.

I do not want to go boing-oing-oing, so Spring is largely irrelevant; I use a high Damping instead to stop the movement quickly.

So for Bounce (UpDown), I use:

Sway (LeftRight) is actually good for giving some movement without the trampoline effect of Bounce. Remember, though, that this is from side to side, and so doesn't have to fight gravity like Bounce does, so the values need not be as high:

Cleavage (InOut) turns your breasts into slushy water bags, squashed flat against your chest with every step. That is just not how things work! Keep this very low, if any at all:

The same principles apply for Belly and Butt. (With a bit of a runner's shape, I personally don't have much butt to sway at all, so those numbers are really low).

I leave the Advanced parameters alone, at their default values of 0 for Mass and Gravity, and 10 for Drag. Some seem to prefer to up these values a bit and lower the Effect and Gain instead, but the general principle of having the Gain a notch above Max Effect and a fairly high Damping seems consistent, from the examples I've seen.