I hate to say this, but...in a way, you set yourself up by telling him that you wanted to speak to him about the shooting range. You gave him ample time to build up his little snit so that when you broached the subject, he was ready to hit you w/both barrels of his little snit. There is a difference between your son going to a firing range (which he's not really interested in) and being in your office and on his computer (something he likes to do).
Actually, I'm not at all surprised that this happened because your h is miserable and he can't find anything much that he and his son can bond over which frustrates him to heck. Your h doesn't get it...your son is far more mature than he is. Some of these MLCers like to pull out the stops and bring up stuff that is going to fester and then there is arguing, etc., right before a holiday. Your h did it today. He is a miserable individual who doesn't care whether you are miserable or not...but he made darn sure to bait you today so that you would be angry and upset just before the holiday. Mleigh...don't allow him to take away your pleasure. He's not worth it right now. Leave him to stew all by his lonesome. Right now, your h thinks he made his point to you and he's so proud of himself. He thinks he's all that and a bag of chips, but when he's alone and is in his bed, thoughts of what he's done today will creep in. Don't be surprised if he acts like nothing transpired between the two of you the next time you talk.
After what transpired today, I wouldn't say another word to him about Christmas Day. I know you are trying to do what is best for your son, but you do not need to put up w/his bad behavior and sweep it under the rug just because of Christmas Day. If he still shows up, I would be all business-like w/him and I certainly wouldn't be watching movies or interacting w/him on any games, etc. He needs to learn that the button pushing gets old real fast and that comment about not being able to talk to you about anything has worn itself out.
Do not, I repeat, do not allow this man to ruin this week leading up to Christmas Day. I know exactly what you are going through as my xh use to do this all of the time before a special event/holiday. There is no excuse, MLC or not, for him to act this way towards you. You've been nothing but kind to this man and like I said, the outburst was uncalled for and he needs to learn to sit down and carry on a conversation like an adult. Time for him to grow up.
Leave him to himself and distance yourself from him. The only way that you'll get through to him is by actions, not words...so distance yourself and just keep it civil and business-like for a while and see what happens.