Hola,
Que bueno que ya lo resolviste.
Como comentario adicional, no vi el $nivel++ al final de la línea, cuando se pasan valores a los métodos recursivos se pasa $nivel + 1. No aumentas y vuelves a reducir al volver.
Código:
$opciones_parsed = array_merge($opciones_parsed,
parse_opciones($submenu, $nivel + 1));
Saludos,
ps:
Código:
$nivel = $nivel - 1;
$nivel--;