Old management mantra: "That which gets rewarded gets done."
As long as the reward for flopping outweighs the punishment for doing it, it will continue.
I struggle to think of a solution. Best one I've come up with is that there is an on-going replay review to identify flopping...it doesn't impact the play on the field. Calls are still made as they normally are. Refs will inevitably be duped by flops, no penalties awarded, etc. An off-field crew will monitor and count obvious flops with the aid of replay as the game goes on. If, at the end of any half of play, a player has more than X obvious flops, that player receives a yellow card at the end of the half. Yes...I know that would never lead to a player being sent off for the game in which he flops, but it would mean they could miss future matches. It would also help track/count who does it the most. Some sort of accountability, even if not real-time, is the only way to stop this.