Yes, that is 100% doable. At Volition we use the following (in broad strokes) solution for that problem:
- All *ms MaxScript files are stored in source control under a folder hierarchy that mimics what the menu/submenu structure will be; vScripts\modeling, vScripts\mapping, etc…
- Pre-startup of Max (we hijack the Max shortcut to point to an in-house package management system that can run pre-startup tasks) we run a Python tool that trolls the entire vscripts\**\* tree in source control and builds up one large *.mcr Macroscript file with individual entries for each *.ms file in the folder tree.
- There is a Max startup script that parses the Macroscript file and, using the MaxScript menuManager interface, adds a ‘vScripts’ menu to the main menu bar and creates a series of sub-menus underneath it, one for each of the subfolders in the source control tree. Those menus and submenus are populated with the various macroscript entries in the monolithic Macroscript file.
We teardown and rebuild the menu at every Max startup to ensure any adds or deletes from the source control tree are fully reflected in our menu in Max.