I've seen an attempt to just replace the .menu and setting the custom data via cvars (lots of \n in it, to simulate columns). And that might even be the most dynamic one.

Or just change the titles...