Pseudo Authoritative Movemet/Action using RaiseEvents Idea

Options
I was thinking of a way to have a Masterclient control the movement of all players in the game, as opposed to the traditional OnPhotonSerialize() method call.

In a bit more detail, Clients would send their Input requests (based on KeyDown and KeyUp / Mouse down and Mouse up, etc...) to be read by the Master Client, limited to X number times a second. Then the Masterclient would move each Player object per client respectively, send the Positions / rotations of all players back to the client .

Locally the Client's Player Object would move at each frame in the update, and only be snapped back when it's too far from the MasterClient's value of this Player Object's position / rotation. Whereas the other player objects that the client sees will have movement / rotation lerped based on received values from Masterclient.

The idea is to setup a 'RaiseEvent' way of relaying Player Inputs to the Masterclient, and Masterclient calculates then resends Position / Rotation.

Maybe one could take this further, and deploy the Masterclient as a Non-Player Version where it doesn't participate in the actual game, but rather just host a room for clients to join. And this could be done at several 'server' locations. (Would this be similar to how servers host games)? I am not too experienced in networking, and especially how servers host games.