My kids LOVE to sleep on the floor every once-in-a-while. But they always want to get back in their bed after a few nights. If you don't want him sleeping on the floor for extended periods of time (I really don't think it would hurt him physically), I'd tell him, "Hey, I've noticed you've been sleeping on the floor the past few nights. How about we make you a little bed on the floor so you can be more comfy?" Then lay down a blanket or sleeping bag and his pillow. It'll be fun! Every night, ask him if he wants to sleep in his bed or on the floor. He'll get tired of it and opt to go back to his bed. But if you give HIM the choice, he won't do it just to fight you about going to bed.
I think putting him back in bed after he falls asleep will teach him that he doesn't have to get in bed. And might make him mad that you're not letting him do what he wants.
We have a baby gate that we put on our active boy's door. He didn't mind at first, but when he got close to age 3, he didnt' like being confined. So we made a deal. He had to stay in his bed after I tucked him in, or I would put the gate back up (it is tension, so it's not hard to take down or put up). He stayed pretty well for a while, then started testing the limits. He only had to have the gate put back up about 5 times over a month to be reminded what he needed to do.