This mod expands your F3 text overlay to show some information about the village you're currently in. For technical reasons, it is limited to SSP. However, I thought it might help people to better understand the mechanics of villages.

Finding a Village: The mod automatically scans for villages close to you. If you're inside a village, it will say "Inside village". If you're close to a village (<32m away), it will say "Nearby village found". If it can find a village that's more than 32m away, it will say "Distant village found".

Center and Radius: The center of the village is determined by the average coordinates of the houses (i.e., it sums up all coordinates and divides them by the number of houses). The radius is determined by the largest distance from the center to a house. It is at least 32, however.

Villagers: Number shows the current count, the one in brackets the limit for breeding (determined by number of houses). Note that there's some oddity in the way MC counts villagers (which is different than the method used to find a village for a specific villager), because it counts villagers using a box with only 9 height, instead of a sphere.

Golems: Numbers show the current count, the one in bracket the limit (determined by number of villagers). If you're inside the golem spawn zone, an extra line will appear.

Houses: Number shows the current count. If it's in green (i.e., at least 21), there are enough houses for golems to spawn in the village (doesn't mean that there are enough villagers though).

Breeding Status: Since 1.4.2, if villagers are killed by mobs or non-entity-related damage sources (e.g. fire), they'll stop breeding for 3 minutes. The latter condition applies only if a player is nearby.

Reputation: Shows your reputation with the village. If it's -15 or less, it will turn red. At that point, golems may start attacking you.

Versions

Since Minecraft 1.6.1, there are two different versions of this mod:

Vanilla Mod (JAR Mod)
Only provides the functionality described above. Use this one if you don't want to install Forge. It does not work in SMP and it may cause conflicts with other mods that aren't explicitly supported (see download description). Unlike before 1.6.1, there will only be a single download which should work with or without any of the supported mods.

Forge ModThis version can also be used in SMP, but only if the mod is installed on the server as well (requires forge server).
Edit: SMP support is currently on hold, but might return in the future. Only the 1.6 version supports it.

Installation

Note: If the following seems too complicated, you can also try using a third party launcher that better supports jar mods, or try to find a video tutorial.

Vanilla: Minecraft 1.6.1 and up (new launcher)

Download the mod

If you haven't done so already, start the official launcher to download the version of Minecraft you want to use (e.g., 1.6.1)

Create a copy of the folder whose name corresponds to the Minecraft version you want to use and name it however you want (e.g., 1.6.1_modded)

Inside that folder, rename the existing .jar and .json files according to the folder name you just chose

Open up the .json file in a text editor and replace the contents of the second pair of quotes with the folder name. For example, change "id": "1.6.1" to"id": "1.6.1_modded".

In newer versions of the launcher (~2016), you also have to prevent the launcher from redownloading the original jar file by changing "downloads" to (e.g.) "_downloads". Do this only for the lowest occurence of "downloads", which should be followed by URLs and checksums of the client and server

Do steps 2-6 listed below (for Minecraft 1.5.2 and below), using the jar file you just renamed instead of minecraft.jar

Start the official Minecraft launcher, click on "Edit Profile", and, under "Use version", select your newly created version (in this case, 1.6.1_modded)

Save the profile, click "Play" and enjoy

Vanilla: Minecraft 1.5.2 and below (old launcher)

Download the mod.

Open both the downloaded mod and minecraft.jar (in your minecraft/bin folder, which is by default %appdata%/.minecraft/bin on Windows) with WinRAR.

Bring the minecraft.jar window to front, select the META-INF folder and press the delete button at the top. You may have already done this step before for another mod.

Bring the window of the mod archive to front and select all files and folders inside the archive.

What do you mean with using the seed? Emulating the SMP world to determine the positions? This would only work for the positions (no additional info) of natural villages. Also, the seed is not sent to the client anymore as far as I can tell, so it would require manual input...

Okay, not sure what I'm doing wrong, but I have a freshly downloaded 1.2.3. I've tried just slapping it in the minecraft.jar, tried ModLoader, and tried Magic Launcher. No dice for any of those, I just get Java crashes. Any idea?

that's weird, should work manually (did you delete meta-inf?) and with magic launcher (deletes the folder for you). Modloader has nothing to do with it.
Or did it work with magic launcher and you just didn't see a message?

that's weird, should work manually (did you delete meta-inf?) and with magic launcher (deletes the folder for you). Modloader has nothing to do with it.
Or did it work with magic launcher and you just didn't see a message?

OHHHHMYGOD..... I have been playing too much SWTOR. I forgot about the meta-inf folder. Works now. Thank! =]

If I stand still in a village with my F3 on, the number of "houses" shifts. :-/ In my current test world (structures meant to pose as houses fr the sake of experimenting with villagers), I oscillate between 83-89 houses in the course of about 30-45 seconds. Why does my house count vary when I'm standing still?

Edit:
Oh gosh... o_0

I just experimented with villager placement. This increased my house count WELL BEYOND the number of "houses" actually present! There are 64 wooden doors in my "village", with no other villages nearby. The number displayed got up to 133 before dropping down to 106, give or take 2.

Maybe this has something to do with the infinite pop cap bug? I really have no idea what's going on...

If I stand still in a village with my F3 on, the number of "houses" shifts. :-/ In my current test world (structures meant to pose as houses fr the sake of experimenting with villagers), I oscillate between 83-89 houses in the course of about 30-45 seconds. Why does my house count vary when I'm standing still?

Edit:
Oh gosh... o_0

I just experimented with villager placement. This increased my house count WELL BEYOND the number of "houses" actually present! There are 64 wooden doors in my "village", with no other villages nearby. The number displayed got up to 133 before dropping down to 106, give or take 2.

Maybe this has something to do with the infinite pop cap bug? I really have no idea what's going on...

Yeah, I noticed that too. The number shifting is because houses are often removed when no villager is nearby for some time, and then readded if one does approach. (especially vertical distances matter here)
What's add though, is that some doors seem to count several times.. I destroyed a natural village that showed ~50 houses by removing ~5 wooden doors.

I'll look into why that happens later. I don't think it's a problem of the mod, as it pulls most data directly.

Okay, I think I found the problem... It has something to do with inconsistent distance checks and rounding problems.

(1) When wooden doors close to villagers are determined (happens every few ticks) the game checks if they are part of the village. To do that, it uses the radius first. But the radius gets rounded down. For example: Imagine a very big village with a radius of 100m. House A now gets added with a distance of 113,4m. The new radius will be 113m. The next time it check for that house, the check will not fail, because 113.4m > 113.0m and therefore the house is not considered to be part of the village at that point.

(2) In the next step, the game tries to determine the villages of these "new" houses. The game now goes through all villages and checks if the door is in the range of (radius + 32m). So House A would get added to the same village, because 113,4m < 145m.

To put it in a nutshell, houses at the edge of a village can (will) be counted multiple times. The more villagers close to those houses, the bigger the effect.

Okay, I think I found the problem... It has something to do with inconsistent distance checks and rounding problems.

(1) When wooden doors close to villagers are determined (happens every few ticks) the game checks if they are part of the village. To do that, it uses the radius first. But the radius gets rounded down. For example: Imagine a very big village with a radius of 100m. House A now gets added with a distance of 113,4m. The new radius will be 113m. The next time it check for that house, the check will not fail, because 113.4m > 113.0m and therefore the house is not considered to be part of the village at that point.

(2) In the next step, the game tries to determine the villages of these "new" houses. The game now goes through all villages and checks if the door is in the range of (radius + 32m). So House A would get added to the same village, because 113,4m < 145m.

To put it in a nutshell, houses at the edge of a village can (will) be counted multiple times. The more villagers close to those houses, the bigger the effect.

What I noted from use with SSP was that the problem was mainly with multiple villages near each other. Where the +32M range would count doors of the OTHER village. When you have the issue you mention the village freaks out for a while, but as long as the door is of the same village ID, the center and radius adjust over about 2 game days and the door count stabilizes to the correct value give or take a couple. After it is stable, adding another door causes the same freak out, but slow steady adding is fine if done in moderation. I was able to get a 200 radius town with 170+ doors (an actual count) working with little problems in SSP.

The problem here for me is getting this on SMP so I can easily tweak my village there which is much more complicated.