Block Machine Name is a small module that adds a machine name field to custom blocks.
Its primary intent is to solve the problem of styling and rendering blocks that use numeric auto-increment ID's which may later not match their production values when the blocks are recreated later. Machine names can only contain lowercase letters, numbers, and underscores.
If you give your custom block a machine name such as 'my_cool_block', the block will be given a class of 'block-my-cool-block' (underscores will be converted to dashes).
The module will also provide a template suggestion - in the above example, you could create a tpl named 'block--my-cool-block.tpl.php' (tpl files always use dashes).
Block Class will also allow you to get your own classes into a block ( based only on your arbitrary choice)
Features Extra also provides a machine name for blocks, but does not currently utilize the machine name for classes or template suggestions.
I have also tested running fe_blocks and Block Machine Name together - they should run together transparently just fine.
Thanks to the maintainers of Features Extra as this code is borrowed almost exclusively from their project.