Hi D.,
Just a few suggestions:
1) Either have him nap in both houses or don't have him nap at all. Perhaps your son is starting to outgrow nap time. Tell him that if he doesn't nap but feels tired to tell grandma and she'll read a story, massage his feet, play soft music for quiet time. Let him have the "power" to choose.
2) Your son as most children do function well with routine, perhaps the routine is different at your mom's. I would check into what she actually does (step by step). I would also see what routine your MIL does when he is there. Compare both to understand what works and doesn't work for your child. The difference could be subtle to you but important to your son.
3) Introduce a reward system to your son for a smooth pickup time with MIL.
Tell him that MIL will have a small reward/toy etc. waiting in the car for a quiet and happy pick-up time if not no reward. The reward should be given immediately after he gets into the car. Have MIL thank him for his great behavior and tell him why he is getting the reward. You are trying to change his behavior at this point. As time goes on, you move from the reward in the car to the reward at home. Then slowly less and less the reward is given at home. By then the behavior should have changed.