Yes, I've got three 'layers' of menus, and different ones for Diagram, Menu and Tree.
If you look at the EA_GetMenuItems instruction in the Manual you'll see an example.
The following is Sparx' own construct which you'll see puts Menus 5 and 6 in layer 3:
Public Function EA_GetMenuItems(ByVal Repository As EA.Repository, ByVal Location As String, ByVal MenuName As String) As Object
Select Case MenuName
Case ""
EA_GetMenuItems = "-&VBNet Addin Framework"
Exit Function
Case "-&VBNet Addin Framework"
EA_GetMenuItems = New String() {"Menu1", "Menu2", "Menu3", "-Menu4", "-", "Show Output", "About..."}
Exit Function
Case "-Menu4"
EA_GetMenuItems = New String() {"Menu5", "Menu6"}
Exit Function
End Select
EA_GetMenuItems = ""
End Function