2) I would ask each player to press a button on their gamepad before the game starts.
"Player 1 press any button"
Then wait for any button pressed on any of 6 gamepads. When a button is pressed say on gamepad #5, save this number in a variable Player1Gamepad or in array:
PlayerGamepads.At(1) set to 5
You can also make a reverse array for convenience - GamepadsToPlayer:
GamepadToPlayer.At(5) set to 1
PlayerGamepads[x] will give you gamepad number for player x.
GamepadToPlayer[y] will give you player number for gamepad y.