@Rainbowfriend,
Why didn't you ask him earlier? He said he was going to send you something and you didn't receive it. It could have gotten lost in the mail and somehow he got the address wrong. Here - he could be thinking what an ungrateful b* - I sent her this nice gift and she didn't thank me for it.
My own mom once mis-addressed a card with a gift card in it - she put my maiden name on it (even though I had been married over 10 years) - my neighbor just happen to have the same last name, recently moved elsewhere - so it ended up getting forwarded to her new home. She thoughtfully brought it me but that was quite a while after my mom had sent it.
In any case - it could have been lost, mis-directed, etc. When someone says they are going to send something and you do not get it within a reasonable time frame, it is completely ok to say - I know you said you were going to send something, but I never received it - I am worried it might have gotten lost in the mail. If he did send it and it had insurance or tracking he can then investigate or get the insurance for it.
If he forgot it then - he could always say oh my gosh I completely forgot to put it in the mail and then send it off.
Better to get it resolved than sit and stew over it.
It could be a simple oversight (gift sitting in a closet where he thought he mailed it or completely forgot to pick it up), lost or redirected in the mail, or intentionally "forgotten".
Three months though might be too long to mention at this point so you might need to let it go.
However, if he does come over and he sent you an expensive piece of jewelry expecting you to wear it - he may make mention of it.
At this point I think you need to let it go since you waited 3 months.