Funnily enough there's already five contest halls and you need three ribbons to attend the Grand Festival. I didn't mention Lavender Town in my last VM because it didn't include a gym and thus wasn't relevant to the topic at hand. ^^; Here's a quote from the sign-up thread:
----------
There are contest halls located in Cerulean City, Vermillion City, Lavender Town, Celadon City, and Saffron City, and each holds one contest per day. This year’s championship is to be held in Viridian City, and you only need three ribbons out of five to attend!
----------
Yeah I only required three for the reason you stated. You could also hang out at the city for an extra day to gain a ribbon or double back. You can travel using any pokemon that can learn the move "fly", regardless of whether it makes sense lol. I guess teleport is fine too.