Actually, it seems like there are three things that need to be modeled in terms of non-HP damage mitigation and how they play into ship matchups.
1. The material of the armor on the hull (currently the hull type, explicitly given, with explicit multipliers defined per ship)
2. The size of the ship (currently implicit, with implicit lists of "can I fire on things of this size" defined per ship)
3. The amount of the armor on the hull (currently the armor value, explicitly given, with implicit damage adjustment defined by a formula, with two direct counters, armor piercing, and armor rotting)
All three of these things seem like they should factor into the net damage multiplier/modifier of a final damage of a shot.
It would be nice if all three of these could be made explicit, and have similar mechanics for how they are defined, displayed, and adjust damage, even if where each ship/shot/whatever varies where it pulls its relevant damage multipliers/modifiers and their resistances.
I am particular to making them all similar to how hull type is currently handed, an explicit definition of which one it each ship is, an explicit display of the multipliers for it (might or might defined not be per ship for each component , but should be accessible easily from the ship's tooltip), and a small number of possible values, all with nice names.
That way, no fiddly math required. All the information I need to know is right there in the tooltip. And the explicit list of multipliers vs. a smallish set of possible values has proven to be very easy for new players to grasp.
To show the net simplicity of the system for the end player, for example, to calculate net damage modification, all I need to know is that what I am hitting has is large sized, has a medium amount of armor, and has a composite material, I have a .8 penalty vs large sized ships, but a 2x bonus again composite materials, thus my net multiplier is 1.6x. Imagine trying to figure out the net amount of damage adjustment with the current formulas, especially because one of them is not even listed in the UI (size of the ship).
One downside is that because armor amount is now a named enumeration instead of a numeric value, you lose a programattically enforced total ordering in terms of how much in impacts damage adjustment. You would have to make sure that the multipliers make sense (like .8x vs light armor magnitude but a 2x vs heavy armor magnitude wouldn't make much sense for most ships, though something like that would be nifty for polarizers...)
Another downside is that you lose some granularity of the balance, as the number of hull materials * number of ship sizes * number of hull magnitudes << than the maximum value of the integer type, assuming you stick with a sane number of all three of these.
Also, names will need to be adjusted. In particular, using the notation I used in this post, it's too easy to confuse medium armor magnitude with medium ship size.
Also, a better name than armor magnitude should be used.