There's a scale that is exponential. That is to say that it's easy to get a little resist but hard to get something significant. His example was that to get the base 33% resist that most people were accustomed to, that they had to get 38 points of damage resist from an item. That's why dragon hides are 38 to get 33% full resist, and you need 400 rather than 100 to get 100% resist/immunity. So to get 33% you lose 5 points but to get 100% you lose 300 points, hence the exponential scale.
Also, the formula was broken in the past because if you had a vuln to say "fire" and throw up a fire resist prep, it nullified the vuln and gave you full resist, essentially giving you double protective value. Now, it's more like a numerical scale in which if you wanted to get rid of your vuln and add resist, you'd need 76 points of whatever resist it was.
As far as metals go, I'm not entirely sure if the math from the above explanation still works since you can't see those numbers in "score damage" but I'd imagine it's still quite similar as to where you'd have a 33% vuln and protection would give you 25% resist, bringing that down to 8% vuln rather than giving you a 25% resist like was in the past but it could be something like, 33% damage multiplier is given to initial damage then a 25% reduction is given after, then the damage is displayed. Of course there are also some items in the game that give blunt, slash, and pierce resist that could cut that further. My guess is that protection from metals works like a wand or sanctuary, etc. and is as Matrik pointed out, is a damage reduction rather than a resist, so it's likely the example above about combating a 33% increase with a 25% reduction although not knowing at which point in the equation they're assessed.