Really interesting responses.
I was assuming that I should err on the side of caution when assigning magazine damage to missiles and the most effective way to do that is assume empty is hit first.
I am quite happy to go for a proportional damage option, although that means a higher promotion of catastrophic magazine hits. If we go down that route:
1) For magazines, that means a magazine hit would destroy a proportion of missiles equal to the proportion of remaining magazine capacity being hit (assuming ejection fails)
2) For box launchers, the chance of destroying a missile would be equal to the (number of launchers with missiles / total missiles).
Is that a preferred option?
I greatly prefer this to empty magazines get hit first. That would be too easy to game so as to make magazine hits irrelevant, even if you don't actually try to.
However, as it makes missile ships much more likely to die from low damage, it would reinforce the advantage longer range has over everything else. If I got to pick an outcome that I wanted the system to promote, I would go for "magazine hits are always very serious and often crippling, but rarely truly catastrophic to the point of taking out ships in single hits." To achieve this, I would suggest that the odds of a successful magazine ejection go up dramatically as chain detonations spread. Maybe:
odds of a magazine detonating after being destroyed = (1- magazine_ejection_chance)^(1+ #_of_magazines_already_destroyed_during_this_damage_round)
So the first magazine goes up with full probability, doing a lot of damage, but following that the chance rapidly dwindles. This could represent smart ejection systems getting more time to prepare as they detect neighboring magazines blowing up. So hit to a magazine is still really, really bad, especially as the missiles do their full damage to internals instead of armor, but less likely to immediately result in a chain detonation that always takes out the entire 40kT strike cruiser.
Another change I'd be interested in is to make the ejection system chance to be per-missile, instead of all-in. So if a mag gets hit, it computes the amount of MSP in it, and then picks random missiles worth that much msp, computes the ejection chance for each one and either ejects them, removing them from the ship's stores, or blowing them up and adding the damage to what's going to be applied after the magazine is resolved. Again, to make the damage somewhat more likely, but also less catastrophic.