Chroming is the only way to go.
While I use a lot of 'skinny can' Krylon Premium Metallic Original Chrome:
https://www.amazon.com/Krylon-K01010A07-Premium-Metalic-Original/dp/B000C027P4/ref=sr_1_2
It doesn't look anything like actual chrome.
It is great once you've sanded the rust off the inside of pinball legs. I don't use it on the outside of pinball legs, but it dramatically improves the appearance of the inside of an old chrome pinball leg.
I've used chrome paint on various things, but this paint finish is not durable.
Ten games and you'll have worn through the shiny layer, and I believe we've tried clear coating after the chrome paint has been applied, and that just makes the chrome appearance horrible. No way to make the painted surface more durable.
Great for things that never get touched.
We have an in-house artist who did a lot of chrome vinyl for cut out lettering on windows. He had a left over roll of the real professional 'chrome vinyl' that we've been cutting pieces off of for years. This is a product like this:
https://www.amazon.com/VViViD-Chrome-Permanent-Adhesive-Silhouette/dp/B08HR79R9C/ref=sr_1_49_sspa
This is quite a bit more durable than paint, and is a dramatically better chrome look than the chrome paint.
You might spend $10 bucks and get a roll and see how it looks. This stuff is plastic, and with wear it will show scratches on the surface. I wouldn't use it on buttons, but I had some chrome areas that a piece of this brought back to original appearance. It's a handy thing for various pinball surfaces, various jukebox surfaces. Really good appearance.
Again, for buttons it probably isn't durable enough.
Chroming has become so dramatically more expensive than it was ten or twenty years ago, but it's still worth it.
Post some pictures when you get your buttons back!