So I was attempting to animate the textures of the water bucket and milk bucket, but when I try to load the game with these textures applied they display as purple boxes. Can someone help to make them animate properly? I'm not sure what I'm doing wrong.
The most obvious thing that jumps out at me is that there are 21 frames in the animation strip, but you've specified 22 frames in your .mcmeta file. Remember that frame 0 is your first frame, so the last frame in the sequence should be #20 for the 21st frame. Yes, it's confusing but this is how programmers think so we need to get used to the idea that "0" is counted as "a number" for this purpose.
This is probably because you are using the older version texture for it. In the entity folder just put a new folder called "projectiles" and name your file "arrow", "spectral_arrow", or "tipped_arrow" depending on what it is, but it looks like your arrow is just an arrow so you probably don't have to rename it. then put the file in the folder. (In the old versions of minecraft there were no other projectiles so they kept it out of any folder, but then they added more arrows.)