[eluser]PhilTem[/eluser]
I'm not sure I understand "cannot access the function through my scripts…like my forms or even ajax" correctly, but only external access to your functions is prohibited, not internal access (as long as you don't use the
public-declaration in the method header

)
But sure, for AJAXing it's not possible to access these methods since these requests will be routed through index.php as well and that checks for underscores. However, if you restrict access with routes.php, even AJAX requests won't be able to access it since it's prohibited.
Thus, the only plausible way would be to use some filtering in MY_Controller::__construct() to check for allowed/disallowed requests