I say its the thought that counts. Stop whining.
Where's the thought? In the fact that he won't take care of his child so she can go to a damn store? In the tshirt she got for her birthday? In the week-late mother's day gift?
No, none of this is acceptable. These things are important to you, and that's perfectly ok. But you need to understand that you are going to have to speak up if you want any of this to change.
It's ok to let him know you'd like him to take gift-giving seriously. Let him know it hurts your feelings to be a last-minute and in some cases an afterthought.
Different things are important to different people. Don't feel selfish for feeling this way. It's obvious that he doesn't put any thought into these things and that's the most hurtful part. If you've been together for longer than 1 year, he should know that holidays are important to you. It won't kill him to make an effort.