Below I have included the hitbox diagram (final version II). The majority of this data was acquired through trial and error testing of the recently released DK source code, along with "debug" in mame. Dean, Jeremy and Jeff H did a majority, if not all of the data gathering, I simply put together a visual representation of their findings.
In order for a collision to "register", the objects must overlap by a minimum of 1 pixel (the black lines are the width of a single pixel in this diagram).
The hitboxes extend from the virtual center point (green labeled pixel in sprites, black for springs), symmetrically in both directions.
Object box size total size
Jumpman 4x6 = 9x13
Fireball 3x2 = 7x5
Foxfire 4x1 = 9x3
Barrel 2x2 = 5x5
Spring 2x2 = 5x5
Pie 8x3 = 17x7 <---Huuj
A few things worth noting:
1. Fireballs and Foxfires DO NOT have the same size hitbox.
2. The pie hitbox is the largest in the game, it extends 1 pixel beyond the left edge of the pie sprite.
3. Jumpmans' X,Y position is offset to the left by a single pixel for sprites with an un-even number of pixels, such as the climbing spirtes.
4. The spring hitbox is the same size regardless of a springs "scrunchiness".
5. The barrel hitbox is also offset by a single pixel to the bottom and left sides of the barrel sprite.
6. The movement of Jumpman and other objects often proceeds at a rate greater than 1 pixel per frame; This means an object could potentially "penetrate further" before registering a hit; you may have 2 or more shared pixels on the X or Y field before a collision is "detected".
I have also drawn a few simulated collisions, to demonstrate the idea of the minimum overlap requirement for a "hit". (updated)