If you want to pursue implementing a menu with custom rendering, you should look at the css control adapters used in existing menus under Web/Controls/Adapters and see how they are implemented. For example not long ago I needed to render different css classes to support jQuery Superfish menu, so I implemented MenuAdapterSuperfish.cs and in Controls I implemented mojoMenuSuperfish.cs and mojoMenuSuperfishVertical.cs
If you implement it succesfully then we can add properties on PageMenu and SiteMenu and add code to use your menu based on settings.
Best,
Joe