Don't re-read the hints when opening the game controller.  Instead use SDL_GameControllerAddMapping() to add hints after initialization.