Cats in villages (at least, in converted villages) have a chance to spawn inside grass path blocks and farmland. This makes it extra hard to find and free them, or to kill them in order to make them relinquish beds they've claimed (see MCPE-44299). It doesn't happen every time, but it's fairly common.
I have provided a sample world where two cats have spawned inside two grass path blocks very close together. When you open it (in 22.214.171.124), you will be at coordinates -1408, 74, -428 and there will be two gold blocks floating beside you. They mark positions where a cat has spawned inside the grass path block below them.
Steps to reproduce:
- Open a 1.10 world in which a village was generated in 126.96.36.199. (It might also work in a new village generated in 188.8.131.52.)
- Run the command /kill @e[type=cat].
- Wait for some cats to spawn. (You can check with /testfor @e[type=cat,r=64].)
- Keep killing any cats you can find with a weapon.
- Eventually, you will either hear a cat but not be able to find it, or cats will stop spawning on the surface. Run the command /execute @e[type=cat,r=64] ~ ~ ~ setblock ~ 90 ~ gold_block.
- Look for gold blocks above grass path or farmland. Each will probably have a cat that spawned inside the block.
Cats spawn only on the ground or on roofs or other solid blocks.
Some cats spawn below ground inside grass paths.
Additional reproduction steps:
In a converted village, manually kill all the stray cats you can find. Repeat as replacements spawn. Eventually, you should hear a stray cat but not be able to find it. Dig 1 block deep around the area the sound is coming from and you will find it.