First of all, there is a 5% chance that you will find a Metal Coat being held by any one of these Pokémon in the wild: Magnemite, Magneton, Steelix, Beldum, Metang, Metagross, Bronzor, Bronzong, Magnezone. Bronzor can be found pretty early if you want to evolve your Onix quickly, being available on Route 206 south of Eterna City.
Anyway, as a static item, (in Platinum only) there is a Metal Coat you can pick up in Iron Island. SImply enter the cave and head down the staircase on the right and follow this path through the elevator:
The metal coat is inside the Pokéball in the last room, in Platinum only. In Diamond and Pearl (as well as Platinum), the only static Mirror Coat you can pick up is in the postgame after getting the National Pokédex from Byron in the house on Iron Island. If you want a Metal Coat before that, you will have to get it from the aforementioned wild Pokémon.