Honestly, the only viable way to fight Metaknight is to camp him. Short up spam single soundless lasors. Make it a mindgame. Throw in empty shorthops. But keep jumping like a lunatic. Soon, your opponent will start shielding and dodging when no lasors are shot. He'll never know if when you land, a lasor will be strung on the end or if you'll just land. He'll make unecessary moves to guard the lasors...leaving him open to be punished. If Metaknight is ever hanging off the edge, keep shooting SH'd lasors. Your lasors have a very good chance of hitting when he jumps up from the ledge.
Lasors stop his whorenado. It stops his recovery. It stops pretty much anything Metaknight can do to you. As long as you keep jumping backwards, jumping away from Metaknight, jumping towards Metaknight, he can't touch you. The lasors work great for spacing and will do a decent amount of damage along the way. Chaingrabbing is another effective tool but far less reliable. About the only way you can ever grab a good Metaknight is by shield-grabbing...Metaknight will not leave himself open to a grab. So, never rely on the grab, only use it if you find the perfect opprotunity. Don't vainlessly try for that measly 50% (because your spike won't kill him). A good metaknight will know you're going for the grab and effectively punish every failed attempt.
A well timed D-Air can do wonders against a Metaknight. Metaknight's extremely weak from air attacks when he isn't ready or prepared to U-Air. Also, Metaknights are never expecting to be spiked. Don't ever charge stupidly into the fray. But, there are times when even the best Metaknight can fall victim to a spiked death if it's unexpected. Name of the game? Don't be predictable.
Spot dodging will give you opprotunities to U-Smash or D-Smash. But honestly...lasors are a must. If you're good at spacing with lasors, about the only way Metaknight can come near you is by flying through the air. When Metaknight's in the air, a well timed B-Air beats most of his moves. In fact, B-Air is pretty much your only way to compete with Metaknight in the air. When you get a smash on him, follow it up with a N-Air. When Metaknight is falling helplessly trying to recover from your attack, N-Air will catch him and rack up some good damage. Something else to think about: Metaknights often forget about Falco's shine. They'll charge for a running grab. They'll approach with a Short Hopped D-Air...they'll do a lot of things. But most of Metaknight's approaching can be destroyed with a well timed shine.
Most of all...when in doubt, AAA combo is probably your best bet. When Metaknight starts getting desperate, he starts Spotdodge spamming D-Smash, or he starts camping or a lot of other tactics, AAA combo will punish him every time. Other than Metaknight's F-Smash, your AAA move actually out ranges anything Metaknight can do (besides his special attacks). So, you're pretty safe to spam AAA obsessively. It even hits him when he's short hopping. Key: Don't follow AAA up with a shine at the end (metaknight will block it and punish). Just AAA, hit him a couple times, and roll away. You'll remain unpunishable.
The secret to Metaknight is guerrilla warfare. Everything you do must not be punishable. Camp him. Spam lasors. AAA. Shine. B-Air. Repeat when necessary. I'd advise NOT using Phantasm too often. It is horribly easy to punish for a Metaknight. As soon as he sees you chargin' up your Phantasm, he'll punish with a N-Air, F-Air or pretty much any move he pleases. Phantasm takes control out of your hands and puts it into Metaknight's hands.