Firstly, I need to mention that if this goes through, something needs to be done about wolves since they're potential attackers and weapons in pvp. That is, they need to be damageable at least with pvp on.
https://github.com/Bukkit/Bukkit-JavaDo ... Event.java
https://github.com/Bukkit/Bukkit-JavaDo ... Event.java
https://github.com/Bukkit/Bukkit-JavaDo ... lable.java
https://github.com/Bukkit/Bukkit-JavaDo ... ntity.java
https://github.com/Bukkit/Bukkit-JavaDo ... ntity.java
https://github.com/Bukkit/Bukkit-JavaDo ... ation.java
https://github.com/Bukkit/Bukkit-JavaDo ... Event.java
https://github.com/Bukkit/Bukkit-JavaDo ... Event.java
https://github.com/Bukkit/Bukkit-JavaDo ... Event.java
Do some entity handling hoodoo with PlayerInteractEntityEvent. Get the entity the player is interacting with. If it is a passive mob and the passive mob is in a private plot that the player does not have permissions in, cancel the event.
For stuff like snowballs, eggs, fishing hooks, and arrows (all projectiles), I kinda doubt these count as PlayerInteractEntityEvent. So you need to handle DamageByEntityEvent and its parent, EntityDamageEvent. Luckily, these keep track of who launched the projectile. If the damaged entity is a passive mob and this passive mob is in a private plot that the projectile's shooter does not have permissions in, cancel the event.
If you want, you could also try assigning the plot owner to the shooter of a projectile released from a dispenser since projectiles shot from these are born without a shooter. Use ProjectileLaunchEvent. Reason for doing this is to stop people from using dispensers and arrows to circumvent animal protection.
The reason this is not yet implemented is likely not due to the impossibility or difficulty.