If you use the following commands (same happens if you change id:creeper to be id:minecraft:Creeper)
you get 2 spawners, each of which has a pig inside and has default NBT data, but it works like the command has "minecraft:creeper" instead of "creeper" (the first spawner spawns creepers right away and the second one will do that after pigs spawn from it one time) This behavior fixes itself when you reload the world (spawners will spawn only pigs).
- Capitalization should not matter, for example minecraft:CreEper should be valid as well
- The restriction for the id should apply to reading and saving NBT, not only saving
The following is based on a decompiled version of Minecraft 16w43a using JD-GUI 1.4.0
The method ajd.g() which does this check is only called when the NBT of a spawner is written and prevents writing any other tags as well, even if they are valid. In previous versions it tested if the id was empty or null. In general it might be better to replace the entry with the default (pig) instead of just skipping all other tags.