I'm a bit fuzzy about when chunks are needed to be loaded: Do chunks need to be loaded in order to retrieve a block doing a world.getBlockAt on a block inside that chunk? Does the chunk need to be loaded in order to do a world.getBlockTypeIdAt? What happens if the chunk is not loaded?
I'm not sure if people are not answering because it's boring or because nobody knows the answer I've done some testing today and it seems that world.getBlockAt() automatically (!) loads the chunk the block is in. The same goes with world.getChunkAt(). I'm not sure if that's the intended functionality or a bug. Hope someone can clarify.