Sheep can regrow wool by eating a grass block (converting it to dirt). In addition, if you dye the sheep and then shear it, the wool grows back coloured. So this way you can generate flocks of rainbow sheep.
History: In early versions, after eating three grass blocks, they would regrow their wool(source). This disappeared (sheep would no longer eat grass), and then was added again in Minecraft 1.1.
I'm no expert at Java, so this isn't a decisive answer, but I figure it can't hurt to post the code here anyway for others to decipher. From SpawnerAnimals.java
:
(Comments mine)
private static boolean canCreatureTypeSpawnAtLocation(EnumCreatureType enumcreaturetype, World world, int i, int j, int k)
{
if(enumcreaturetype.getCreatureMaterial() == Material.water)
// If it's a water creature...
{
return world.getBlockMaterial(i, j, k).getIsLiquid() && !world.isBlockNormalCube(i, j + 1, k);
// Make sure it spawns in water
} else
{
return world.isBlockNormalCube(i, j - 1, k) && !world.isBlockNormalCube(i, j, k) && !world.getBlockMaterial(i, j, k).getIsLiquid() && !world.isBlockNormalCube(i, j + 1, k);
// Makes sure the block it's spawning on is opaque, that it's not water, and that there are at least 2 blocks of air overhead.
}
}
It does not appear that it checks whether the mob is spawning underground or not.
Anecdotally, wandering around for a while with an Xray texture pack produced only surface mobs, so I'm not sure what other guards might be put in place to prevent underground spawns.
Best Answer
Even if mobs ignore light levels (like in the Nether or in your modded case all mobs), they still can't spawn inside blocks with a hitbox (with some buggy exceptions). One that affects not many other things is carpet, for example sheep can still eat through it.
Farmland was changed to be only 15/16 of a block high in 1.10.1, so mobs should already not spawn on it. If they do anyway in your modded game, you could try for example putting end rods above the crops, because usually mobs cannot spawn if there isn't space for them at least two blocks high, not even baby zombies or bats. If they do it anyway, even with crops on the field, there's probably no way to prevent it.