the way I see it, modes are obsolete. windows won't report 320*240. drivers can scale pretty much any sized image to full screen (or letterbox them), or your monitor can. etc.
when you combine all of that with refresh rates and colour depth and stuff, things get even worse.
imho its better to have an internal list of common width+height values and filter based upon the desktop's size.
this is why fte has only width+height+bpp+refreshrate cvars, and no modes at all (the menu has a list of common resolutions but they're basically just hints and exist solely in the menu). and if width+height are 0, then it uses your desktop's resolution because frankly that's usually the only resolution that will actually look correct (unless you care about pixel doubling, but even then you often get some ugly bilinear filter or double letterboxing or both).
if nothing else you should split size and bpp+refresh rate. there's too many possible modes otherwise.