Powiem szczerze, że ja zawsze pisze menu "od zera". Trudno będzie napisać jednocześnie coś uniwersalnego i wydajnego - choć nie mówię, że jest to niemożliwe. Pewnie gdyby trochę nad tym pomyśleć, to da radę.
Ja zazwyczaj stosuje zwykłe drzewko - dla wygody ograniczam ilość poziomów zagnieżdzenia. Do wczytywania takiego drzewak używam poprostu rekurencji. Osobiście raz tylko doszedłem do 4 albo 5 poziomu - gdy pisałem skypt sklepu internetowego - było tam wiele kategorii i na prawdę nie dało się ograniczyć tych zagnieżdżeń bez utraty funkcjonalności. Myślę jednak, że przekroczenie 5 poziomów to już spory wyczyn