1: You can change the layout order in the same place as with the standard listing: admin > Configuration > Product Listing.
2: Making the whole square a link will require some code modification in /includes/modules/your_template/product_listing.php.
You will have to open the link with the first element in the product and close it with the last, and eliminate the other links in the middle. I started doing this, but there are so many complications that it's not a task to perform in a little text window, and I'm not sure it's feasible without eliminating some functions.
Mmmm okay, maybe it is allowable to leave the links inside the listing and wrap another one around the whole box... never tried that.
There is an alternative: a sneaky CSS method which will expand the coverage of one link to cover the whole square, without touching the code at all.
Add this to the bottom of your stylesheet:
Code:
.productListing-data h3 {position: relative;}
h3.itemTitle a {position: absolute; width: 400px; height: 100px; top: -5px; left: -150px;}
.listingDescription {padding-top: 2em;}
This takes the title link out of the normal flow of the document, expands it to whatever dimensions you specify, and positions it relative to where the title would normally appear. Since the title is out of the flow and not occupying space for itself, we give the description some top padding to make room for it.
You will have to tweak the numbers to make it fit your situation. (I don't have Column Grid.)
For the hover color, you don't need to use javascript. You can change the background and/or text color of the expanded link with this:
Code:
h3.itemTitle a:hover {color: #33ff99; background-color: #ff99bb;}
The text color works fine, but unfortunately, the background color will cover everything else. A trial of z-index on elements didn't work, but some more tweaking may be able to resolve this.