Если вы используете HMVC, нет никаких причин, по которым все или любые ваши контроллеры не могут наследовать от MX_Controller. Вы можете иметь контроллеры в ваших обычных папках application / controllers или application / core, которые наследуют MX_Controller, они не обязательно должны быть «модульными» контроллерами.
Если вам нужен доступ к свойствам из одного контроллера в другом, почему бы не создать базовый контроллер, например, MY_Controller, который расширяет MX_Controller, помещает его либо в приложение / контроллеры, либо в приложение / ядро, а затем каждый раз, когда вы создаете «модульный» контроллер, просто наследует от MY_Controller вместо MX_Controller.
Не забудьте, что вы можете загрузить любой контроллер модуля и использовать его как библиотечный класс.