In Triple Battles, Mirror Coat can hit non-adjacent opponents provided a non-adjacent opponent was the last Pokémon to attack the user.
It will return the damage given to the Pokémon that last attacked it, and the damage will be double the damage of the attack.
So for example Pokémon A, B and C all used a Special move on Pokémon D.
Pokémon A moves first, then B, then C. If Pokémon D used Mirror Coat, it will return the double the damage of Pokémon C's Attack, inflicted on Pokémon C.
Source